部署

前提条件

在部署探针前,需要先确保本地浏览器时间与服务器时区、时间都一致。若有多个服务器,则要保证本地浏览器、多个服务器的时区、时间都一致。否则,可能会影响数据的准确性,例如拓扑不正确等。

UniAgent方式部署

当服务器上存在多种语言的应用时,推荐使用UniAgent安装,安装步骤请参见UniAgent部署说明

UniAgent安装包内集成了Java/PHP/.NET/.NET Core/Node.js/Python 多个语言的探针,安装后不需要手工修改应用的配置文件,所有嵌入探针的动作均由UniAgent自动完成,并且可以自动监控Docker容器内的应用。

UniAgent方式默认仅支持应用编译成dll的方式,如果应用编译成为exe或bin,需修改./conf/interceptor.conf文件

例如:.NetCore应用编译为了netcore-demo.exe应用, 如果想监控netcore-demo.exe,修改C:\Program Files\tingyun\monitor\conf\interceptor.conf文件

netcore.namelist=w3wp,dotnet,netcore-demo.exe
  • Windows操作系统

修改./conf/interceptor.conf文件,保存配置文件,通过“任务管理器”或“服务”重启TingyunMonitor服务,最后重启netcore-demo.exe应用。

  • Linux操作系统

修改./conf/interceptor.conf文件,保存配置文件,然后重启netcore-demo应用。

独立探针Windows部署

  1. 下载安装包 tingyun-agent-netcore-版本.exe。

  2. 双击安装包,配置license和collector地址,选择安装路径,进行安装。12

  3. 更改.NET应用启动脚本,在应用启动脚本内增加call安装路径\tingyun-enable.bat。例如,原.NET应用启动脚本如下:

    ...
    dotnet  c:\interpub\myapp\myapp.dll
    

    假设探针安装在C:\Program Files (x86)\Networkbench.COM\NetCore Profiler更改后的dotnet应用启动脚本如下:

    ...
    call  "C:\Program Files (x86)\Networkbench.COM\NetCore Profiler\tingyun-enable.bat"
    dotnet  c:\interpub\myapp\myapp.dll
    
  4. 重启应用。

  5. 如果应用采用部署到IIS上的模式,请同时安装 .NET 探针(tingyun-agent-dotnet-版本.exe),并启动.NET 探针图形化界面NBUI.EXE,点击“禁用监控”然后再点击“启用监控”。

独立探针Linux部署

  1. 下载安装包 tingyun-agent-netcore-版本.bin。

  2. 运行tingyun-agent-netcore-版本.bin,配置license和collector地址,选择安装路径,进行安装。

    [user@localhost  tmp]$  chmod  +x  tingyun-agent-netcore-版本.bin
    [user@localhost  tmp]$  sudo  ./tingyun-agent-netcore-版本.bin
    unzip  to  /usr/lib/tingyun-dotnet  ...
    Enter  license  key  (请录入授权码):
    Enter  collector  address  (请录入collector地址):
    

    支持静默安装,运行安装包时,使用选项--license和--collector。

    sudo  ./tingyun-agent-netcore-版本.bin  --license=123-456-789  --collector=192.168.1.8:7665
    
  3. 更改应用启动脚本,在应用启动脚本内增加tingyun-enable。

    • 如果使用root权限安装探针

      在应用启动脚本内增加. tingyun-enable。例如,原.NET应用启动脚本如下:

      ...
      dotnet  /opt/myapp/myapp.dll
      

      更改后的应用启动脚本如下:

      ...
      .  tingyun-enable
      dotnet  /opt/myapp/myapp.dll
      
    • 如果使用普通用户权限安装探针

      在应用启动脚本内增加 . /安装路径/bin/tingyun-enable。例如,原.NET应用启动脚本如下:

      ...
      dotnet  /opt/myapp/myapp.dll
      

      假设探针安装在 /opt/tingyun/ 下,更改后的dotnet应用启动脚本如下:

      ...
      .  /opt/tingyun/bin/tingyun-enable
      dotnet  /opt/myapp/myapp.dll
      
    • 如果使用systemd维护应用

      在systemd配置文件内将探针环境变量增加到environment配置后面。

      例如,原.NET应用配置文件如下:

      [Service]
      ExecStart=/usr/bin/dotnet /opt/myapp/myapp.dll
      Type=notify
      Restart=on-failure
      

      更改后的.NET应用配置文件如下:

      说明:以下仅是举例说明,请酌情按照自己的实际情况修改。其中CORECLR_PROFILER_PATH指定的路径必须和探针路径一致。

      [Service]
      ExecStart=/usr/bin/dotnet /opt/myapp/myapp.dll
      Type=notify
      Restart=on-failure
      Environment=CORECLR_ENABLE_PROFILING=1
      Environment=CORECLR_PROFILER="{8BEB2128-D285-4E1D-91B6-11ACD43EC0EE}"
      Environment=CORECLR_PROFILER_PATH="/usr/lib/tingyun-dotnet/tingyun_profiler.so"
      

      通知systemd重新加载配置文件

      systemctl daemon-reload
      
    • 如果使用supervisor维护应用

      在supervisor配置文件内将探针环境变量增加到environment配置后面。

      例如,原.NET应用配置文件如下:

      [program:superset]
      command=dotnet /opt/myapp/myapp.dll
      autostart=true
      startsecs=1
      autorestart=true
      environment=ASPNETCORE_ENVIRONMENT=PRODUCT
      

      更改后的.NET应用配置文件如下:

      说明:以下仅是举例说明,请酌情按照自己的实际情况修改。其中CORECLR_PROFILER_PATH指定的路径必须和探针路径一致。

      [program:superset]
      command=dotnet /opt/myapp/myapp.dll
      autostart=true
      startsecs=1
      autorestart=true
      environment=ASPNETCORE_ENVIRONMENT=PRODUCT,
          CORECLR_ENABLE_PROFILING=1,
          CORECLR_PROFILER="{8BEB2128-D285-4E1D-91B6-11ACD43EC0EE}",
          CORECLR_PROFILER_PATH="/usr/lib/tingyun-dotnet/tingyun_profiler.so"
      

      通知supervisor重新加载配置文件

      supervisorctl reread
      supervisorctl update
      
  4. 重启应用。

独立探针Docker部署

  1. 下载安装包 tingyun-agent-netcore-版本.bin到Dockerfile目录。

  2. 更改Dockerfile。

    说明:脚本仅是举例说明,请酌情按照自己的实际情况修改。

    FROM microsoft/dotnet:3.1.0-aspnetcore-runtime
    
    # web application
    RUN mkdir /app
    WORKDIR /app
    COPY publish /app
    ENV ASPNETCORE_URLS http://*:5000
    
    # install tingyun agent
    COPY tingyun-agent-netcore-版本号.bin /tmp
    RUN chmod +x /tmp/tingyun-agent-netcore-版本号.bin
    RUN /tmp/tingyun-agent-netcore-版本号.bin --license=授权码 --collector=collector地址:端口
    RUN rm -f /tmp/tingyun-agent-netcore-版本号.bin
    
    # run web application with tingyun agent
    RUN echo "#! /bin/bash" > /app/run.sh
    RUN echo ". tingyun-enable" >> /app/run.sh
    RUN echo "export TINGYUN_APP_NAME=demo" >> /app/run.sh
    RUN echo "dotnet /app/demo.dll" >> /app/run.sh
    RUN chmod +x /app/run.sh
    ENTRYPOINT ["/app/run.sh"]
    

    FROM microsoft/dotnet:3.1.0-aspnetcore-runtime
    
    # web application
    RUN mkdir /app
    WORKDIR /app
    COPY publish /app
    ENV ASPNETCORE_URLS http://*:5000
    
    # install tingyun agent
    COPY tingyun-agent-netcore-版本号.bin /tmp
    RUN chmod +x /tmp/tingyun-agent-netcore-版本号.bin
    RUN /tmp/tingyun-agent-netcore-版本号.bin --license=授权码 --collector=collector地址:端口
    RUN rm -f /tmp/tingyun-agent-netcore-版本号.bin
    
    # setup env for tingyun agent
    ENV CORECLR_ENABLE_PROFILING 1
    ENV CORECLR_PROFILER {8BEB2128-D285-4E1D-91B6-11ACD43EC0EE}
    ENV CORECLR_PROFILER_PATH /usr/lib/tingyun-dotnet/tingyun_profiler.so
    
    # setup application name
    ENV TINGYUN_APP_NAME=demo
    
    # run web application with tingyun agent
    ENTRYPOINT ["dotnet", "/app/demo.dll"]
    
  3. 重新编译镜像。

    docker  build  .
    

results matching ""

    No results matching ""